import java.util.Scanner;
public class array_add_plus {
    //数组扩容后续plus版
    public static void main(String[] args){
        /*
        要求：实现动态的给数组添加元素效果，实现数组的扩容。
        1.原始数组使用静态分配 int[] arr = {1,2,3};
        2.增加的元素4，直接放在数组的最后 arr = {1，2，3，4}
        3.用户通过如下方法决定是否继续添加，添加成功，是否继续？y/n

        思路分析
        1.定义初始数组 int[] arr = {1,2,3}
        2.定义一个新数组 int arrNew = new int[arr.length+1]
        3.遍历 arr 数值，依次将arr的元素拷贝到 arrNew数组
        4.将 4 赋值给arrNew[arrNew.length-1] = 4;
        5.最终得体现对 arr 的扩容==>让 arr 指向 arrNew ==> arr = arrNew  ==>那么原来的数组arrNew就被销毁了
        6.创建一个 Scanner 对象接受用户输入
        7.因为用户什么时候退出不确定，使用do_while_循环
         */

        //代码实现
        //创建Scanner对象
        Scanner myscanner  = new Scanner(System.in);

        int[] arr = {1,2,3};

        do{
            int[] arrNew = new int[arr.length+1];
            for(int i=0;i<arr.length;i++){
                arrNew[i] = arr[i];
            }
            System.out.println("请输入你要添加的元素:");
            int addNum = myscanner.nextInt();
            //将 addNum 赋值给arrNew[arrNew.length-1] = addNum;
            arrNew[arrNew.length-1] = addNum;
            arr = arrNew;

            //输出测试
            System.out.println("====arr扩容后元素====");
            for(int i=0;i<arr.length;i++){
                System.out.println(arr[i]);      //1 2 3 4
            }

            //用户是否继续
            System.out.println("是否继添加：(y/n)");
            char key = myscanner.next().charAt(0);
            if( key=='n'){
                break;
            }

        }while(true);

        System.out.println("你退出了添加!!");

    }
}
